/* ===================

AX2E (AXESCON XACML 2.0 Engine) is the Java authorization engine, which implements OASIS XACML 2.0 standard.
Copyright (C) 2007 AXESCON LLC

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA


Contact: AXESCON LLC - info{at}axescon.com

 =================== */
package axescon.xacml.samples.customfn;

import axescon.xacml.api.XacmlException;
import axescon.xacml.test.LoopLoadTest;

import java.io.IOException;

/**
 * @author Date: Sep 19, 2005
 *         Responsibilities: demonstrate how to add a custom function to AXESCON XACML Engine.
 */
public class CustomFnTest extends LoopLoadTest {

    static {
        testSute = new CustomFnTest();
    }

    public void setup(String[] args) throws IOException, XacmlException {

        super.setup(args);
        // BasicConfigurator instantiates PolicyEvaluator, and calls its setDefaults() method, which
        // sets the same instance of FnFactory for TargetMatcher and ExpressionEvaluator.
        // So, we can obtain the default FnFactory and add our new function to it.
        conf.getPolicyEvaluator().getTargetMatcher().getFnFactory()
                .addFn("urn:axescon:xacml:sample:custom-fn:function:even-years-passed",
                        new FnEvenYearsPassed());

    }

}
